package br.com.devmedia.controller.managedbeans;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.com.devmedia.beans.Projeto;
import br.com.devmedia.conversores.ConverterFuncionario;
import br.com.devmedia.conversores.ConverterSetor;
import br.com.devmedia.modelo.dao.HibernateDAO;

@ManagedBean
@SessionScoped
public class ProjetoBean {
	private HibernateDAO<Projeto> projetoDAO;
	private Projeto projeto;
	private ConverterFuncionario converterFuncionario;
	private ConverterSetor converterSetor;

	public ProjetoBean() {
		this.projetoDAO = new HibernateDAO<Projeto>(Projeto.class);
		this.converterFuncionario = new ConverterFuncionario();
		this.converterSetor = new ConverterSetor();
	}

	public String listar() {
		return "/privado/projeto/listar?faces-redirect=true";
	}

	public String novo() {
		this.projeto = new Projeto();
		return "form?faces-redirect=true";
	}

	public String cancelar() {
		return "listar?faces-redirect=true";
	}

	public String gravar() {
		if (projeto.getId() == null)
			this.projetoDAO.gravar(projeto);
		else
			this.projetoDAO.atualizar(projeto);

		return "listar?faces-redirect=true";
	}

	public String alterar(Projeto projeto) {
		this.projeto = projeto;
		return "form?faces-redirect=true";
	}

	public String excluir(Projeto projeto) {
		this.projetoDAO.excluir(projeto);
		return "listar?faces-redirect=true";
	}

	public List<Projeto> listarTodos() {
		return this.projetoDAO.listarTodos();
	}

	public Projeto getProjeto() {
		return projeto;
	}

	public void setProjeto(Projeto projeto) {
		this.projeto = projeto;
	}

	public ConverterFuncionario getConverterFuncionario() {
		return converterFuncionario;
	}

	public void setConverterFuncionario(ConverterFuncionario converterFuncionario) {
		this.converterFuncionario = converterFuncionario;
	}

	public ConverterSetor getConverterSetor() {
		return converterSetor;
	}

	public void setConverterSetor(ConverterSetor converterSetor) {
		this.converterSetor = converterSetor;
	}
}
